package com.ihr360.insurance.entity.request;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ihr360.commons.model.type.BenefitCategory;
import com.ihr360.type.StaffStatus;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author Stone.Shi
 * @description
 * @date 2018-03-07 17:56:57.
 */
public class StaffBenefitRequest extends StaffIdRequest implements Serializable {

    private static final long serialVersionUID = -8888747836443208080L;

    private String staffName;
    private String idCardNo;
    private List<Long> departmentIds;
    private StaffStatus staffStatus;

    /**
     * 社保/公积金类别
     */
    private BenefitCategory category;
    private Long companyBenefitId;

    /**
     * 社保方案search条件
     */
    private List<Long> siCompanyBenefitIds;
    /**
     * 社保起始缴纳月search条件
     */
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date siStartOn;
    /**
     * 社保最后缴纳月search条件
     */
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date siEndOn;

    /**
     * 公积金方案search条件
     */
    private List<Long> hfCompanyBenefitIds;
    /**
     * 公积金起始缴纳月search条件
     */
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date hfStartOn;
    /**
     * 公积金最后缴纳月search条件
     */
    @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
    private Date hfEndOn;

    private Integer pageNo;
    private Integer pageSize;

    private String sort;

    public String getStaffName() {
        return staffName;
    }

    public void setStaffName(String staffName) {
        this.staffName = staffName;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public List<Long> getDepartmentIds() {
        return departmentIds;
    }

    public void setDepartmentIds(List<Long> departmentIds) {
        this.departmentIds = departmentIds;
    }

    public StaffStatus getStaffStatus() {
        return staffStatus;
    }

    public void setStaffStatus(StaffStatus staffStatus) {
        this.staffStatus = staffStatus;
    }

    public BenefitCategory getCategory() {
        return category;
    }

    public void setCategory(BenefitCategory category) {
        this.category = category;
    }

    public Long getCompanyBenefitId() {
        return companyBenefitId;
    }

    public void setCompanyBenefitId(Long companyBenefitId) {
        this.companyBenefitId = companyBenefitId;
    }

    public Date getSiStartOn() {
        return siStartOn;
    }

    public void setSiStartOn(Date siStartOn) {
        this.siStartOn = siStartOn;
    }

    public Date getSiEndOn() {
        return siEndOn;
    }

    public void setSiEndOn(Date siEndOn) {
        this.siEndOn = siEndOn;
    }

    public Date getHfStartOn() {
        return hfStartOn;
    }

    public void setHfStartOn(Date hfStartOn) {
        this.hfStartOn = hfStartOn;
    }

    public Date getHfEndOn() {
        return hfEndOn;
    }

    public void setHfEndOn(Date hfEndOn) {
        this.hfEndOn = hfEndOn;
    }

    public List<Long> getSiCompanyBenefitIds() {
        return siCompanyBenefitIds;
    }

    public void setSiCompanyBenefitIds(List<Long> siCompanyBenefitIds) {
        this.siCompanyBenefitIds = siCompanyBenefitIds;
    }

    public List<Long> getHfCompanyBenefitIds() {
        return hfCompanyBenefitIds;
    }

    public void setHfCompanyBenefitIds(List<Long> hfCompanyBenefitIds) {
        this.hfCompanyBenefitIds = hfCompanyBenefitIds;
    }

    public Integer getPageNo() {
        return pageNo;
    }

    public void setPageNo(Integer pageNo) {
        this.pageNo = pageNo;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String getSort() {
        return sort;
    }

    public void setSort(String sort) {
        this.sort = sort;
    }
}
